feat(diagnostics): observe WorkManager framework failures safely - #207
feat(diagnostics): observe WorkManager framework failures safely#207MrFr3di wants to merge 5 commits into
Conversation
|
O1.1 exact-head GREEN checkpoint. Current head: Self-hosted validation run
The workflow-level conclusion is red only because mandatory evidence artifact publication failed afterward under the separately owned storage-capacity problem (#209). Publication acceptance remains fail-closed; that transport/capacity failure does not invalidate the already completed O1.1 test/build workload. This closes the executable O1.1 RED -> minimal implementation -> exact-head substantive GREEN loop. It authorizes the next TDD step (O1.2 bounded typed store RED), but does not make #207 ready to merge: O1.2/O1.3/Doctor integration and final acceptance remain pending. Critical-path scheduling note: after this GREEN the singleton runner is being reserved for one exact-source U0 retry before another #207 push, so O1.2 will not be allowed to compete with U0. |
Closes #191
Purpose
Host-first, secret-safe WorkManager failure observation under #179. This PR remains draft and currently contains only O1.1: the platform-neutral typed failure contract plus its RED→GREEN evidence. WorkManager callback wiring, bounded recorder/store, Doctor projection and device acceptance are not part of the current implementation yet.
O1.1 TDD evidence
RED — observed
RED commit:
2516d8120c4c8535382c79654585b948b29daae2.A real Gradle execution reached
:core:common:compileTestKotlinand failed specifically because these production symbols did not exist yet:BackgroundWorkFailureKind;BackgroundWorkerCategory;BackgroundWorkFailureObservation.The contract requires four stable WorkManager failure families, a closed worker-category vocabulary, no raw
String/Throwablepayload, deterministic value semantics and rejection of negative timestamps.Minimal GREEN — verified
Implementation commit:
24b33931ce4ee09044e5ae467748de696d95a263.Hosted-sync head:
7663cccb6d8eafeff4062be4a6ae4494e2056da3.GitHub-hosted
Hosted validationrun33048709750completed SUCCESS on that exact head. O1.1 is therefore an accepted RED→GREEN checkpoint; the former self-hosted/no-verdict wording is obsolete.Architecture boundary
The typed observation model remains platform-neutral and deliberately does not reuse generic diagnostic events capable of carrying arbitrary text. WorkManager remains owner of scheduling/retry/failure semantics. Later callbacks must be non-throwing and must never persist raw throwable text, URL/token/title or other secret-bearing data.
Remaining sequence
Configuration.Builderfailure callbacks behind a small adapter/factory;Boundaries
2.11.2;Do not mark ready or merge until the remaining O1 slices are independently RED→GREEN and the adapter has hosted/device acceptance.